package pharao.domain;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;

@Entity
public class Aufgabe {

	/**
	 * @uml.property  name="aufgabenStatus"
	 * @uml.associationEnd  multiplicity="(1 1)" inverse="aufgabe:pharao.domain.AufgabenStatus"
	 */
	private AufgabenStatus aufgabenStatus = new pharao.domain.AufgabenStatus();
	
	private int id;

	/**
	 * enthält den Schwierigkeitsgrad der Aufgabe
	 * @uml.property  name="intSchwierigkeitsgrad"
	 */
	private int intSchwierigkeitsgrad;

	/**
	 * @uml.property  name="prüfung"
	 * @uml.associationEnd  inverse="aufgabe:pharao.domain.Prüfung"
	 */
	private Prüfung prüfung;

	/**
	 * @uml.property  name="übung"
	 * @uml.associationEnd  inverse="collectionAufgaben:pharao.domain.Übung"
	 */
	private Übung übung;

	/**
	 * Getter of the property <tt>aufgabenStatus</tt>
	 * @return  Returns the aufgabenStatus.
	 * @uml.property  name="aufgabenStatus"
	 */
	@OneToOne
	public AufgabenStatus getAufgabenStatus() {
		return aufgabenStatus;
	}

	@Id
	@GeneratedValue
	public int getId() {
		return id;
	}

	/**
	 * Getter of the property <tt>intSchwierigkeitsgrad</tt>
	 * @return  Returns the intSchwierigkeitsgrad.
	 * @uml.property  name="intSchwierigkeitsgrad"
	 */
	public int getIntSchwierigkeitsgrad() {
		return intSchwierigkeitsgrad;
	}

	/**
	 * Getter of the property <tt>prüfung</tt>
	 * @return  Returns the prüfung.
	 * @uml.property  name="prüfung"
	 */
	@OneToOne
	public Prüfung getPrüfung() {
		return prüfung;
	}

	/**
	 * Getter of the property <tt>übung</tt>
	 * @return  Returns the übung.
	 * @uml.property  name="übung"
	 */
	@OneToOne
	public Übung getÜbung() {
		return übung;
	}

	/**
	 * Setter of the property <tt>aufgabenStatus</tt>
	 * @param aufgabenStatus  The aufgabenStatus to set.
	 * @uml.property  name="aufgabenStatus"
	 */
	public void setAufgabenStatus(AufgabenStatus aufgabenStatus) {
		this.aufgabenStatus = aufgabenStatus;
	}

	public void setId(int id) {
		this.id = id;
	}

	/**
	 * Setter of the property <tt>intSchwierigkeitsgrad</tt>
	 * @param intSchwierigkeitsgrad  The intSchwierigkeitsgrad to set.
	 * @uml.property  name="intSchwierigkeitsgrad"
	 */
	public void setIntSchwierigkeitsgrad(int intSchwierigkeitsgrad) {
		this.intSchwierigkeitsgrad = intSchwierigkeitsgrad;
	}

	/**
	 * Setter of the property <tt>prüfung</tt>
	 * @param prüfung  The prüfung to set.
	 * @uml.property  name="prüfung"
	 */
	public void setPrüfung(Prüfung prüfung) {
		this.prüfung = prüfung;
	}

	/**
	 * Setter of the property <tt>übung</tt>
	 * @param übung  The übung to set.
	 * @uml.property  name="übung"
	 */
	public void setÜbung(Übung übung) {
		this.übung = übung;
	}

}
